Can a constructor be used to change the data inside an object?
No. Constructors always create new objects. (They might get data from an old object, but a completely separate object will be constructed using a different chunk of main memory.)
Here is the example program, this time modified to create a second Point object:
import java.awt.*; class ChangingData2 { public static void main ( String arg[] ) { Point pt = new Point( 12, 45 ); // construct a Point System.out.println( "First values: " + pt ); pt = new Point( -13, 49 ) ; // construct a new Point System.out.println( "Final values: " + pt ); } }
Here is a picture showing the situation before and after the second assignment statement:
In the "After" picture, the first object is shaded to
emphasis that it is now "garbage."
The reference variable pt
refers to the newly created object.